
from core.basic.skill import 技能
from core.basic.character import Character
from core.basic.skill import 主动技能, 被动技能


class 主动技能(主动技能):

    def 基础等级计算(self):
        if self.基础等级 == 0:
            super().基础等级计算()
            if self.所在等级 not in [50, 85, 100] and self.是否主动 == 1:
                self.基础等级 = min(self.基础等级 + 1, self.等级上限)

    def MP消耗(self, **argv):
        char = argv.get("char", {})
        k = char.get_skill_by_name('重火器精通').MP消耗量比率()
        return super().MP消耗(**argv) * k


class 技能0(主动技能):
    名称 = "M3喷火器"
    所在等级 = 15
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 7
    MP = [45, 392]
    无色消耗 = 0
    data0 = [0, 256, 282, 309, 334, 359, 387, 411, 438, 465, 489, 516, 542, 568, 594, 621, 647, 672, 700, 724, 750, 777, 802, 828, 855, 879, 906, 934, 959, 985, 1011, 1037, 1062, 1090, 1115, 1140, 1168, 1192,
             1219, 1245, 1270, 1298, 1324, 1350, 1375, 1402, 1427, 1453, 1481, 1505, 1530, 1558, 1583, 1609, 1637, 1661, 1688, 1713, 1740, 1766, 1791, 1818, 1843, 1870, 1895, 1921, 1947, 1973, 2001, 2026, 2052]
    hit0 = 14
    TP成长 = 0.1
    TP上限 = 7

    def 等效百分比(self, **argv):
        self.hit0 = 14 + (1 if self.TP等级 >= 5 else 0)  # 5级以上TP能多打一段
        return super().等效百分比(**argv)


class 技能1(被动技能):
    名称 = '重火器精通'
    所在等级 = 15
    等级上限 = 20
    基础等级 = 10
    学习间隔 = 3
    关联技能 = ['所有']
    冷却关联技能 = ['所有']
    非冷却关联技能 = ['远古粒子炮', '火力全开', '制胜·最终兵器']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1 + 0.02 * self.等级, 5)

    def 物理攻击力倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1 + 0.01 * self.等级, 5)

    def MP消耗量比率(self):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1 - 0.03 * self.等级, 5)

    def CD缩减倍率(self, 武器类型):
        if not 武器类型 == '手炮' or self.等级 == 1:
            return 1.0
        else:
            return 0.9


class 技能2(主动技能):
    名称 = "加农炮"
    所在等级 = 20
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 5
    MP = [30, 280]
    无色消耗 = 0
    data0 = [0, 1365, 1503, 1643, 1781, 1917, 2059, 2196, 2336, 2474, 2612, 2751, 2889, 3028, 3167, 3305, 3444, 3583, 3721, 3860, 3997, 4137, 4275, 4415, 4552, 4691, 4830, 4968, 5108, 5246, 5384, 5522, 5661, 5800, 5938, 6078,
             6215, 6354, 6493, 6632, 6770, 6908, 7046, 7186, 7325, 7463, 7602, 7739, 7878, 8017, 8156, 8295, 8431, 8570, 8710, 8849, 8988, 9126, 9263, 9403, 9541, 9681, 9818, 9955, 10097, 10234, 10374, 10511, 10650, 10789, 10926]
    hit0 = 2
    TP成长 = 0.1
    TP上限 = 7


class 技能3(主动技能):
    名称 = "反坦克炮"
    所在等级 = 20
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 6
    MP = [40, 391]
    无色消耗 = 0
    data0 = [0, 215, 235, 255, 279, 299, 323, 343, 364, 388, 408, 429, 451, 474, 495, 517, 538, 559, 584, 604, 625, 646, 668, 691, 712, 734, 756, 778, 797, 820, 842, 864, 886, 907, 928, 952, 973, 993,
             1015, 1038, 1060, 1081, 1103, 1123, 1148, 1169, 1188, 1211, 1232, 1254, 1277, 1299, 1319, 1343, 1363, 1383, 1407, 1429, 1450, 1472, 1493, 1515, 1538, 1559, 1579, 1600, 1625, 1645, 1668, 1688, 1709]
    hit0 = 1
    data1 = [0, 1116, 1229, 1343, 1456, 1571, 1682, 1796, 1910, 2023, 2136, 2251, 2362, 2475, 2588, 2701, 2816, 2929, 3043, 3155, 3269, 3382, 3497, 3610, 3722, 3836, 3948, 4061, 4175, 4288, 4402, 4516, 4627, 4741, 4856,
             4968, 5083, 5195, 5309, 5422, 5536, 5648, 5761, 5874, 5989, 6101, 6214, 6327, 6441, 6555, 6667, 6783, 6896, 7009, 7122, 7235, 7347, 7461, 7575, 7688, 7801, 7913, 8027, 8141, 8256, 8368, 8482, 8595, 8708, 8821, 8933]
    hit1 = 3
    TP成长 = 0.1
    TP上限 = 7


class 技能4(被动技能):
    名称 = 'APG63'
    所在等级 = 25
    等级上限 = 20
    基础等级 = 10
    学习间隔 = 3

    def 物理攻击力倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.14 + 0.01 * self.等级, 5)


class 技能5(主动技能):
    名称 = "激光炮"
    所在等级 = 25
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 7
    MP = [61, 512]
    无色消耗 = 0
    data0 = [0, 3551, 3912, 4273, 4634, 4993, 5354, 5714, 6074, 6436, 6796, 7157, 7518, 7875, 8237, 8598, 8959, 9320, 9679, 10040, 10400, 10760, 11120, 11481, 11842, 12203, 12561, 12922, 13282, 13645, 14006, 14365, 14726, 15085, 15446, 15806, 16167,
             16528, 16889, 17247, 17608, 17968, 18331, 18692, 19051, 19412, 19771, 20132, 20492, 20853, 21214, 21573, 21933, 22294, 22654, 23016, 23375, 23736, 24098, 24457, 24818, 25177, 25539, 25900, 26259, 26619, 26980, 27340, 27701, 28061, 28422]
    hit0 = 1
    TP成长 = 0.1
    TP上限 = 7


class 技能6(被动技能):
    名称 = '蓄电激光炮'
    所在等级 = 25
    等级上限 = 11
    基础等级 = 1
    学习间隔 = 2
    关联技能 = ['激光炮']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.25+0.05 * self.等级, 5)


class 技能7(主动技能):
    名称 = "聚焦喷火器"
    所在等级 = 30
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 12
    MP = [130, 980]
    无色消耗 = 0
    data0 = [0, 299, 332, 362, 392, 422, 455, 484, 514, 545, 576, 606, 637, 667, 699, 729, 758, 790, 821, 851, 881, 911, 942, 973, 1002, 1034, 1064, 1095, 1125, 1157, 1186, 1217, 1248, 1278, 1308, 1340, 1370,
             1401, 1431, 1461, 1493, 1523, 1553, 1584, 1616, 1645, 1675, 1707, 1737, 1767, 1798, 1828, 1860, 1890, 1919, 1950, 1982, 2012, 2042, 2070, 2102, 2133, 2162, 2193, 2224, 2255, 2285, 2316, 2346, 2377, 2408]
    hit0 = 29
    TP成长 = 0.1
    TP上限 = 7


class 技能8(主动技能):
    名称 = 'FM31榴弹发射器'
    所在等级 = 35
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 15
    MP = [50, 630]
    无色消耗 = 0
    data0 = [0, 1200, 1323, 1444, 1565, 1687, 1811, 1933, 2055, 2175, 2297, 2418, 2542, 2663, 2786, 2906, 3028, 3149, 3273, 3395, 3518, 3638, 3760, 3881, 4003, 4126, 4248, 4370, 4490, 4612, 4734, 4858, 4980, 5102, 5222,
             5344, 5466, 5588, 5711, 5833, 5953, 6074, 6197, 6318, 6443, 6564, 6685, 6806, 6929, 7050, 7174, 7295, 7415, 7537, 7658, 7781, 7902, 8027, 8146, 8269, 8390, 8513, 8634, 8758, 8877, 9000, 9121, 9244, 9365, 9489, 9609]
    hit0 = 8
    TP成长 = 0.2
    TP上限 = 1

    是否有护石 = 1

    def 装备护石(self, char):
        self.基础施放次数 = 4
        self.hit0 = 2
        self.倍率 *= 1.27
        self.CD = 4


class 技能9(主动技能):
    名称 = 'FM92mk2榴弹'
    所在等级 = 35
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [164, 1376]
    无色消耗 = 1
    data0 = [0, 1566, 1725, 1884, 2043, 2203, 2360, 2520, 2679, 2837, 2996, 3155, 3314, 3473, 3632, 3790, 3951, 4108, 4269, 4427, 4584, 4745, 4904, 5061, 5223, 5381, 5538, 5699, 5857, 6018, 6175, 6335, 6494, 6652, 6811, 6971,
             7129, 7287, 7447, 7606, 7764, 7924, 8083, 8241, 8401, 8559, 8719, 8877, 9036, 9196, 9354, 9512, 9673, 9830, 9989, 10149, 10306, 10467, 10625, 10786, 10943, 11103, 11262, 11421, 11580, 11738, 11897, 12056, 12216, 12376, 12533]
    hit0 = 8
    TP成长 = 0.1
    TP上限 = 5

    # 重武装改追加功能 攻击力与 冷却时间- 40%，变为贮存最多2次的充能类技能
    倍率 = 0.6
    CD = 20.0*0.6
    基础施放次数 = 2


class 技能10(主动技能):
    名称 = '量子爆弹'
    所在等级 = 40
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 18
    MP = [164, 1376]
    无色消耗 = 1
    data0 = [0, 1006, 1109, 1211, 1313, 1416, 1516, 1618, 1722, 1823, 1927, 2028, 2132, 2234, 2335, 2438, 2539, 2641, 2744, 2845, 2948, 3050, 3153, 3255, 3358, 3457, 3561, 3662, 3765, 3868, 3970, 4073, 4174, 4276, 4380,
             4480, 4583, 4685, 4787, 4888, 4992, 5094, 5197, 5299, 5402, 5502, 5604, 5706, 5810, 5911, 6015, 6115, 6218, 6321, 6423, 6523, 6627, 6728, 6831, 6933, 7036, 7138, 7241, 7341, 7445, 7545, 7649, 7750, 7853, 7956, 8057]
    hit0 = 1
    data1 = [0, 11581, 12758, 13933, 15108, 16285, 17460, 18632, 19808, 20985, 22159, 23335, 24510, 25684, 26860, 28035, 29210, 30386, 31561, 32735, 33910, 35087, 36261, 37436, 38612, 39786, 40962, 42137, 43311, 44488, 45664, 46837, 48014, 49187, 50363,
             51539, 52715, 53887, 55063, 56238, 57414, 58590, 59766, 60938, 62115, 63289, 64465, 65641, 66814, 67990, 69165, 70340, 71517, 72691, 73865, 75040, 76217, 77391, 78566, 79743, 80916, 82092, 83268, 84441, 85618, 86794, 87967, 89141, 90318, 91493, 92668]
    hit1 = 1

    感电data0 = [0, 10, 10, 10, 10, 10, 10, 11, 12, 12, 13, 14, 14, 15, 16, 16, 17, 18, 19, 19, 20, 21, 21, 22, 23, 23, 24, 25, 25, 26, 27, 27, 28, 29, 30,
               30, 31, 32, 32, 33, 34, 34, 35, 36, 36, 37, 38, 39, 39, 40, 41, 41, 42, 43, 43, 44, 45, 45, 46, 47, 47, 48, 49, 50, 50, 51, 52, 52, 53, 54, 54]
    感电hit0 = 1

    TP成长 = 0.1
    TP上限 = 5

    是否有护石 = 1

    def 装备护石(self, char):
        self.hit0 = 0
        self.hit1 = 0.16 * 8 * 1.14
        self.感电hit0 *= 0.16 * 8 * 1.14
        self.CDR *= 0.9


class 技能11(主动技能):
    名称 = "X-2太阳神光炮"
    所在等级 = 45
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 45
    MP = [350, 2940]
    无色消耗 = 2
    data0 = [0, 27414, 30196, 32976, 35757, 38537, 41321, 44102, 46883, 49664, 52445, 55226, 58008, 60788, 63569, 66349, 69133, 71915, 74695, 77477, 80257, 83039, 85819, 88601, 91380, 94163, 96946, 99726, 102508, 105289, 108070, 110851, 113632, 116412, 119193, 121976, 124757,
             127539, 130320, 133101, 135882, 138664, 141444, 144225, 147005, 149788, 152570, 155350, 158133, 160913, 163695, 166476, 169257, 172037, 174818, 177601, 180381, 183163, 185945, 188726, 191507, 194288, 197068, 199850, 202630, 205413, 208194, 210975, 213758, 216538, 219320]
    hit0 = 1
    灼伤data0 = [0, 3046, 3355, 3664, 3973, 4282, 4592, 4901, 5209, 5518, 5827, 6136, 6445, 6754, 7064, 7373, 7682, 7991, 8299, 8608, 8917, 9226, 9535, 9845, 10154, 10463, 10772, 11081, 11390, 11698, 12007, 12317, 12626, 12935, 13244, 13553, 13862,
               14171, 14480, 14788, 15098, 15407, 15716, 16025, 16334, 16643, 16952, 17262, 17571, 17879, 18188, 18497, 18806, 19115, 19424, 19733, 20043, 20352, 20661, 20970, 21278, 21587, 21896, 22205, 22515, 22824, 23133, 23442, 23751, 24060, 24369]
    灼伤hit0 = 1
    TP成长 = 0.1
    TP上限 = 5

    是否有护石 = 1

    def 装备护石(self, char):
        self.倍率 *= 1.24


class 技能12(被动技能):
    名称 = '超温重火器'
    所在等级 = 48
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40

    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.04 + 0.02 * self.等级, 5)


class 技能13(主动技能):
    名称 = "远古粒子炮"
    所在等级 = 50
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40
    CD = 145
    MP = [1000, 8400]
    无色消耗 = 5
    data0 = [0, 6659, 8203, 9748, 11293, 12837, 14380, 15925, 17469, 19013, 20559, 22103, 23648, 25192, 26735, 28280, 29824, 31368, 32913, 34457, 36001, 37546, 39089, 40633, 42178,
             43722, 45266, 46811, 48355, 49898, 51443, 52987, 54533, 56077, 57621, 59166, 60710, 62253, 63799, 65343, 66888, 68432, 69976, 71521, 73065, 74608, 76153, 77697, 79241, 80786, 82330]
    hit0 = 0
    data1 = [0, 7742, 9538, 11335, 13131, 14926, 16722, 18518, 20314, 22110, 23905, 25700, 27495, 29290, 31087, 32883, 34679, 36475, 38270, 40066, 41861, 43658, 45453, 47250, 49044,
             50840, 52635, 54431, 56226, 58023, 59818, 61614, 63410, 65206, 67003, 68798, 70594, 72389, 74183, 75979, 77775, 79571, 81368, 83163, 84959, 86754, 88550, 90347, 92142, 93937, 95733]
    hit1 = 10


class 技能14(主动技能):
    名称 = "等离子放射器"
    所在等级 = 60
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 30
    MP = [400, 1120]
    无色消耗 = 1
    data0 = [0, 663, 730, 799, 866, 933, 1001, 1067, 1134, 1202, 1269, 1337, 1404, 1471, 1539, 1608, 1674, 1741, 1809, 1876, 1944, 2011, 2077, 2146, 2214, 2280,
             2348, 2414, 2483, 2549, 2617, 2684, 2753, 2818, 2886, 2955, 3022, 3090, 3157, 3223, 3292, 3359, 3424, 3493, 3559, 3629, 3695, 3763, 3830, 3898, 3964]
    hit0 = 37
    TP成长 = 0.1
    TP上限 = 5

    是否有护石 = 1

    def 装备护石(self, char):
        self.倍率 *= 0.85
        self.CDR *= 0.60


class 技能15(主动技能):
    名称 = 'FM92mk2SW榴弹'
    所在等级 = 70
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 50
    MP = [800, 1680]
    无色消耗 = 2
    data0 = [0, 4873, 5368, 5860, 6358, 6851, 7347, 7840, 8335, 8830, 9325, 9819, 10314, 10807, 11302, 11797, 12293, 12786, 13282, 13774, 14271, 14764, 15259, 15753, 16249, 16741,
             17237, 17732, 18226, 18721, 19215, 19710, 20203, 20699, 21191, 21688, 22181, 22677, 23170, 23666, 24159, 24654, 25150, 25643, 26138, 26632, 27126, 27621, 28117, 28611, 29105]
    hit0 = 8
    data1 = [0, 242, 266, 292, 315, 339, 364, 388, 414, 438, 462, 486, 513, 535, 560, 586, 609, 634, 658, 683, 709, 730, 757, 781, 806, 832, 855,
             879, 904, 930, 953, 979, 1002, 1027, 1051, 1075, 1102, 1126, 1148, 1175, 1199, 1225, 1249, 1271, 1297, 1321, 1347, 1371, 1396, 1420, 1445]
    hit1 = 24

    # 灼伤攻击力,在点TP之后删除
    灼伤data0 = [0, 28, 31, 34, 36, 39, 42, 45, 48, 51, 53, 56, 59, 62, 65, 68, 70, 73, 76, 79, 82, 85, 87, 90, 93, 96, 99, 102, 104, 107, 110, 113, 116, 119, 121, 124, 127, 130,
               133, 136, 138, 141, 144, 147, 150, 153, 155, 158, 161, 164, 167, 170, 172, 175, 178, 181, 184, 187, 189, 192, 195, 198, 201, 204, 206, 209, 212, 215, 218, 221, 223]
    # 灼伤8次
    灼伤hit0 = 8

    TP成长 = 0.10
    TP上限 = 5

    是否有护石 = 1

    def 装备护石(self, char):
        self.倍率 *= 1.27
        self.CDR *= 0.9

    def 等效百分比(self, **argv):
        if self.TP等级 > 0:
            self.灼伤hit0 = 0
        else:
            self.灼伤hit0 = 8
        return super().等效百分比(**argv)


class 技能16(被动技能):
    名称 = '重武装改造'
    所在等级 = 75
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40

    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.23 + 0.02 * self.等级, 5)


class 技能17(主动技能):
    名称 = 'FSC7'
    所在等级 = 75
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 40
    MP = [777, 6021]
    无色消耗 = 3
    data0 = [0, 2980, 3284, 3586, 3888, 4190, 4493, 4795, 5098, 5400, 5701, 6006, 6307, 6610, 6913, 7214, 7518, 7820, 8121, 8424, 8729, 9028, 9332, 9635, 9937, 10240, 10543,
             10845, 11147, 11450, 11752, 12055, 12358, 12659, 12961, 13265, 13567, 13868, 14173, 14475, 14778, 15078, 15382, 15684, 15987, 16289, 16592, 16893, 17195, 17499, 17801]
    hit0 = 1
    data1 = [0, 5664, 6240, 6814, 7389, 7961, 8536, 9113, 9685, 10262, 10835, 11412, 11984, 12558, 13135, 13709, 14284, 14859, 15434, 16007, 16581, 17157, 17732, 18306, 18881, 19458,
             20030, 20606, 21180, 21755, 22330, 22904, 23479, 24052, 24628, 25202, 25779, 26354, 26927, 27501, 28074, 28651, 29225, 29801, 30374, 30951, 31523, 32099, 32673, 33248, 33824]
    hit1 = 10

    是否有护石 = 1

    def 装备护石(self, char):
        self.倍率 *= 0.64
        self.CD = 18
        self.基础施放次数 = 1.0
        # self.恢复 = 1.0


class 技能18(主动技能):
    名称 = 'PT15原始型压缩炮'
    所在等级 = 80
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 45
    MP = [580, 4500]
    无色消耗 = 5
    data0 = [0, 73812, 81299, 88788, 96276, 103764, 111252, 118743, 126231, 133719, 141207, 148696, 156182, 163671, 171159, 178648, 186135, 193624, 201113, 208600, 216088, 223577, 231066, 238553, 246043, 253531,
             261017, 268506, 275995, 283483, 290971, 298459, 305948, 313435, 320924, 328412, 335901, 343388, 350877, 358364, 365852, 373341, 380831, 388319, 395807, 403295, 410784, 418271, 425760, 433248, 440737]
    hit0 = 1

    是否有护石 = 1

    def 装备护石(self, char):
        self.倍率 *= 1.35


class 技能19(主动技能):
    名称 = '火力全开'
    所在等级 = 85
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40
    CD = 180
    MP = [2500, 8000]
    无色消耗 = 10
    data0 = [0, 1361, 1677, 1992, 2308, 2623, 2941, 3256, 3572, 3886, 4204, 4520, 4835, 5152, 5466, 5782, 6100, 6415, 6730, 7045, 7362, 7678, 7994, 8310, 8625, 8942, 9258,
             9572, 9889, 10204, 10520, 10838, 11152, 11468, 11783, 12100, 12415, 12731, 13047, 13363, 13679, 13994, 14311, 14627, 14941, 15257, 15575, 15890, 16206, 16521, 16837]
    hit0 = 50
    data1 = [0, 3403, 4193, 4979, 5770, 6559, 7349, 8139, 8929, 9716, 10510, 11298, 12087, 12879, 13665, 14455, 15248, 16036, 16824, 17614, 18404, 19194, 19987, 20774, 21561, 22353,
             23143, 23931, 24720, 25511, 26300, 27091, 27880, 28670, 29459, 30248, 31037, 31828, 32618, 33407, 34198, 34985, 35777, 36567, 37354, 38143, 38935, 39724, 40513, 41304, 42092]
    hit1 = 20
    data2 = [0, 42316, 52128, 61940, 71753, 81566, 91378, 101190, 111004, 120816, 130627, 140442, 150253, 160067, 169878, 179692, 189504, 199317, 209128, 218943, 228753, 238564, 248378, 258190, 268003, 277815,
             287627, 297441, 307253, 317065, 326878, 336691, 346503, 356316, 366128, 375940, 385754, 395565, 405380, 415191, 425004, 434816, 444630, 454441, 464255, 474066, 483879, 493692, 503503, 513318, 523128]
    hit2 = 1


class 技能20(被动技能):
    名称 = 'Pandora_01'
    所在等级 = 95
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40

    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.18 + 0.02 * self.等级, 5)


class 技能21(主动技能):
    名称 = 'UHT-03爆炎喷火器'
    所在等级 = 95
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 60
    MP = [773, 6000]
    无色消耗 = 7
    data0 = [0, 5513, 6074, 6632, 7192, 7753, 8311, 8869, 9427, 9989, 10548, 11108, 11666, 12227, 12786, 13346, 13906, 14464, 15023, 15583, 16144, 16701, 17262, 17821, 18378, 18940,
             19500, 20058, 20616, 21178, 21735, 22296, 22855, 23416, 23974, 24534, 25093, 25651, 26209, 26773, 27329, 27892, 28449, 29009, 29567, 30128, 30689, 31247, 31805, 32366, 32923]
    hit0 = 24


class 技能22(主动技能):
    名称 = '制胜·最终兵器'
    所在等级 = 100
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40
    CD = 290
    MP = [4028, 12889]
    无色消耗 = 15
    data0 = [0, 18483, 22771, 27059, 31343, 35632, 39919, 44205, 48491, 52777, 57064, 61353, 65637, 69925, 74213, 78497, 82784, 87072, 91358, 95644, 99933, 104218, 108504, 112793, 117077, 121365, 125651,
             129938, 134224, 138512, 142798, 147084, 151372, 155658, 159944, 164231, 168518, 172805, 177092, 181378, 185665, 189950, 194237, 198524, 202810, 207098, 211385, 215672, 219958, 224244, 228531]
    hit0 = 5
    data1 = [0, 4621, 5694, 6766, 7835, 8908, 9980, 11052, 12124, 13193, 14266, 15338, 16410, 17482, 18554, 19624, 20697, 21769, 22838, 23911, 24982, 26055, 27127, 28197, 29269, 30341,
             31413, 32485, 33557, 34628, 35699, 36771, 37842, 38915, 39987, 41058, 42130, 43200, 44273, 45345, 46417, 47488, 48558, 49631, 50703, 51776, 52846, 53918, 54989, 56062, 57134]
    hit1 = 5
    data2 = [0, 9242, 11386, 13529, 15673, 17816, 19960, 22101, 24246, 26389, 28532, 30677, 32819, 34962, 37106, 39249, 41392, 43535, 45679, 47823, 49966, 52109, 54253, 56397, 58538, 60682,
             62827, 64969, 67112, 69255, 71399, 73542, 75686, 77828, 79972, 82116, 84258, 86403, 88547, 90688, 92832, 94975, 97119, 99262, 101405, 103550, 105692, 107837, 109979, 112122, 114265]
    hit2 = 10
    data3 = [0, 11091, 13663, 16237, 18806, 21380, 23951, 26523, 29095, 31667, 34239, 36813, 39381, 41955, 44527, 47099, 49671, 52242, 54814, 57386, 59960, 62532, 65102, 67675, 70246, 72818,
             75391, 77964, 80535, 83107, 85679, 88250, 90823, 93394, 95966, 98538, 101111, 103683, 106256, 108827, 111399, 113970, 116542, 119114, 121686, 124259, 126831, 129403, 131975, 134547, 137117]
    hit3 = 25


class classChange(Character):
    def __init__(self, equVersion=""):
        self.实际名称 = 'launcher_female'
        self.名称 = '重霄·枪炮师'
        self.角色 = '神枪手(女)'

        self.职业 = '枪炮师'
        # 用来筛CP武器的
        self.转职 = '枪炮师(女)'
        self.武器选项 = ['手炮']
        self.输出类型选项 = ['物理百分比']
        self.防具精通属性 = ['力量']
        self.类型 = '物理百分比'
        self.武器类型 = '手炮'
        self.防具类型 = '重甲'
        技能列表 = []
        技能序号 = {}
        i = 0
        while i >= 0:
            try:
                tem = eval('技能'+str(i)+'()')
                tem.基础等级计算()
                技能序号[tem.名称] = i
                技能列表.append(tem)
                i += 1
            except:
                i = -1
        self.技能栏 = 技能列表
        self.技能序号 = 技能序号
        self.buff = 1.957

        super().__init__(equVersion)

    # def 职业特殊计算(self):
    #     k = self.get_skill_by_name('重火器精通').MP消耗量比率()
    #     for i in self.技能栏:
    #         if i.是否主动 == 1:
    #             i.MP = [int(i.MP[0] * k), int(i.MP[1] * k)]

    def 火属性强化(self) -> float:
        max_num = max([super().火属性强化(), super().光属性强化()])
        return max_num

    def 光属性强化(self) -> float:
        max_num = max([super().火属性强化(), super().光属性强化()])
        return max_num
